import java.util.*;
/**
 * Die Klasse Universität hält die relevanten Stammdaten, also Studiengänge, Lehrveranstaltunge und Räume zusammen. 
 * 
 * @author Bianca Brückner
 * @version 06.12.2014
 */
public class Universitaet
{
   private String name;
   private String strasse;
   private String hausnummer;
   private String stadt;
   private String bundesland;
   private String tel;
    
   /**
   * studiengaenge
   */
    private List<Studiengang> studiengaenge = null;
   /**
   * dozenten
   */
    private List<Dozent> dozenten = null;
   /**
   * raeume
   */
    private List<Raum> raeume = null;
   /**
   * lehrveranstaltungen
   */
    private List<Lehrveranstaltung> lehrveranstaltungen = null;
   /**
   * raumbelegungen
   */
    private List<RaumBelegung> raumbelegungen = null;
    


    /**
     * Die Konstruktormethode weißt dem Universitäts-Objekt die grundlegenden Informationen zu. Diese Informationen werden zu Beginn des Programmmablaufs über den ConfigService
     * aus einer XML Datei gelesen. Desweiteren werden für alle weiteren Instanzobjekte (Listen) leere Listen instanziiert.
     * 
     * @param  iName   Der Name der Universität.
     * @param  iStrasse   Strasse der Universität
     * @param  ihausnummer   Hausnr der Universität.
     * @param  istadt   Stadt der Universität.
     * @param  ibundesland   Bundesland der Universität:
     * @param  itel   Telefonnummer der Universität.
     */
    public Universitaet(String iName,String iStrasse, String ihausnummer, String istadt, String ibundesland, String itel )
    {
        name = iName;
        strasse = iStrasse;
        hausnummer = ihausnummer;
        stadt = istadt;
        bundesland = ibundesland;
        tel = itel;
        
        studiengaenge = new ArrayList<Studiengang>();
        dozenten = new ArrayList<Dozent>();
        raeume = new ArrayList<Raum>();
        lehrveranstaltungen = new ArrayList<Lehrveranstaltung>();
    }

 /**
     * 
     * @return Liste der Studiengänge welche an der Universität angeboten werden.
     */
    
    public List<Studiengang> getStudiengaenge(){
        return studiengaenge;
    }
    
     /**
     * 
     * @param iStudiengaenge Parameter der Liste der Studiengänge welche innerhalb der Universität angeboten werden können.
     */
    public void setStudiengaenge(List<Studiengang> iStudiengaenge){
        studiengaenge = iStudiengaenge;
    }
    
        /**
     * 
     * @return Gibt eine Liste von Dozenten zurück, welche an der Universität dozieren.
     */ 
    public List<Dozent> getDozenten(){
        return dozenten;
    }
    
    /**
     * 
     * @param iDozenten setzt eine Liste von Dozenten welche an der Universität dozieren.
     */ 
    public void setDozenten(List<Dozent> iDozenten){
        dozenten = iDozenten;
    }
    
    /**
     * 
     * @return Gibt eine Liste der an der Universität zur Verfügung stehenden Räume zurück.
     */ 
    public List<Raum> getRaeume(){
        return raeume;
    }
    
     /**
     * 
     * @param iRaeume Setzt eine Liste der an der Universität zur Verfügung stehenden Räume.
     */ 
    public void setRaeume(List<Raum> iRaeume){
        raeume = iRaeume;
    }
    
    /**
     * 
     * @return Gibt eine Liste der an der Universität zur Verfügung stehendne Lehrveranstaltungen zurück.
     */ 
    public List<Lehrveranstaltung> getLehrveranstaltungen(){
        return lehrveranstaltungen;
    }
    
    /**
     * 
     * @param iLehrveranstaltungen Setzt eine Liste der an der Universität zur Verfügung stehenden Lehrveranstaltugen.
     */ 
    public void setLehrveranstaltungen(List<Lehrveranstaltung> iLehrveranstaltungen){
        lehrveranstaltungen = iLehrveranstaltungen;
    }
    
        /**
     * 
     * @return Gibt eine Liste der Raumbelegungen zurück.
     */ 
        public List<RaumBelegung> getRaumbelegungen(){
        return raumbelegungen;
    }
    
    /**
     * 
     * @param iRaumbelegungen Setzt die Liste der Raumbelegungen an der Universität.
     */ 
    public void setRaumbelegungen(List<RaumBelegung> iRaumbelegungen){
        raumbelegungen = iRaumbelegungen;
    }
    
        /**
     * 
     * @param iName Setzt den Namen der Universität.
     */ 
    public void setName(String iName){
        name = iName;
    }
    
        /**
     * 
     * @return Liefert den Namen der Universität zurück.
     */ 
    public String getName(){
        return name;
    }
    
    /**
     * 
     * @param iStrasse Setzt die Strasse der Uni.
     */ 
    public void setStrasse (String iStrasse){
        strasse = iStrasse; 
    }
    
    /**
     * 
     * @param iLehrveranstaltungen Setzt eine Liste der an der Universität zur Verfügung stehenden Lehrveranstaltugen.
     */ 
    public String getStrasse(){
        return strasse; 
    }
    
    /**
     * 
     * @return Liefert einen String zurück der die Grundlegenden Informationen zur Universität beinhaltet.
     */ 
    public String toString(){
    String beschreibung = "Der Name der Universität ist: " + this.name + "Die Adresse der Universität lautet:" + this.strasse + " " + this.hausnummer + " " + this.stadt;
    
    return beschreibung; 
    }
    
}



